package de.tum.in.eist.poll.client;

import java.util.ArrayList;

import com.google.gwt.user.client.rpc.AsyncCallback;

import de.tum.in.eist.poll.shared.*;

/**
 * Client side RPC interface including asynchronous callback objects.
 * 
 */
public interface PollServiceAsync {

	void login(String name, String password, AsyncCallback<User> callback);
	void loginFromSession(AsyncCallback<User> callback);
	void logout(AsyncCallback<Void> callback);
	void submitFeedback(Feedback feedback, AsyncCallback<Void> callback);
	void checkRatingStatus(Lecture lecture, AsyncCallback<Boolean> callback);
	void requestLectures(AsyncCallback<ArrayList<Lecture>> callback);
	void requestFeedback(Lecture lecture, AsyncCallback<ArrayList<Feedback>> callback);
	void getLecture(int id, AsyncCallback<Lecture> callback);
}